package com.vhall.component.entity.interactive.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * @author xianglei
 * @date 2021/7/20 11:46
 */
@Data
public class QuestionListDto {

    private String appId;

    /**
     * 活动ID
     */
    private String roomId;

    /**
     * 提问者ID
     */
    private Long userId;

    /**
     * 业务单元
     */
    @NotNull(message = "业务单元不能为空")
    private Integer bu;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 头像URL地址
     */
    private String avatar;

    /**
     * 是否置顶，1是0否,默认否
     */
    @Range(min = 0, max = 1)
    private Integer top;

    /**
     * 问答ID
     */
    private Long id;

    /**
     * 问答ID，多个问答ID以逗号分割(精确匹配)
     */
    private String ids;

    /**
     * 业务扩展字段
     */
    private String ext;

    private String sort;

    /**
     * 排序字段，默认created_at（固定排序字段Top及ID），可选值：id,app_id,room_id,status,
     * operator,operate_time,created_at,updated_at,top,care_count,answer_count,user_id,is_show,bu
     */
    private String sortBy;

    /**
     * 当前页，默认1
     */
    private Integer currPage;

    /**
     * 每页大小，默认10
     */
    private Integer pageSize;

    /**
     * 是否显示，0显示1不显示，默认全部
     */
    private Integer isShow;

    /**
     * 状态，0未处理 1不处理 2转给主持人 3 文字回复， 4语音回复，默认全部
     */
    private String status;

    /**
     * 问答创建开始时间,格式 yyyy-MM-dd HH:mm:ss
     */
    private LocalDateTime startTime;

    /**
     * 问答创建结束时间,格式 yyyy-MM-dd HH:mm:ss
     */
    private LocalDateTime endTime;

    /**
     * 问答标题（模糊匹配）
     */
    private String content;

    /**
     * 传递用户ID，显示所有已发布及该用户下所有未发布已发布问答，有此值时user_id参数不生效
     */
    private String showType;

    /**
     * 是否公开,0公开,1私密,默认0,不使用请勿传递,可选值为0和1,未传递不参与列表筛选
     */
    private Integer isOpen;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 关心数
     */
    private Integer careCount;

    /**
     * 回答数
     */
    private Integer answerCount;

    private String openType;

    /**
     * 是否优质
     */
    private Integer isQuality;

    private Integer limit;

    private String version;

    private Integer lastQid;
}
